Modern computing systems use an ever increasing amount of memory for operating systems, applications, and data. For efficient use of memory, various memory reduction techniques have been developed. Some memory reduction techniques aim to reduce the amount of memory used by using data compression techniques on the memory contents. Other memory reduction techniques eliminate duplicate copies of data in memory and use references to point to a single copy of the data, such as with memory deduplication techniques. In either case, more addressable memory space is advertised than the actual physical memory available.